In certain types of image processing systems, especially color correction systems employed in postproduction equipment, system operators observe an image on a video monitor, adjust color and other parameters of the image until it is aesthetically satisfactory, store the parameters in system memory, and apply the parameter corrections to a sequence of images forming a scene. Various types of image processing are often employed to create, enhance, compress, filter, or otherwise modify characteristics of an image. In a video signal color correction system, color corrections of motion picture film and/or video tape are typically made on a scene-by-scene basis. A "scene" is a sequential collection of images shot from the same camera, having the same viewpoint, composed in a certain way, etc. A system operator or "colorist" views a selected exemplary image or frame from a scene. The colorist then applies color corrections via a control panel to adjust video parameters such as hue, saturation, luminance, etc. of a frame image being viewed. The correction settings are stored in system memory.
After the colorist is satisfied with the adjustments he or she has made to the selected frame, the correction system, which is typically computer-controlled, applies the stored color corrections to each frame in the scene one at a time. The color-corrected frames of the scene are then recorded on film or videotape. The steps are repeated for other scenes in the film or video tape, often with different correction settings stored for different scenes. This process creates a color-corrected master film or video tape that reflects color adjustments to all frames in all scenes.
Many types of color correction equipment employed as the source of images for processing provide signals in the primary colors of red, green, and blue (RGB). These signals are typically digital, or are digitized by digitizing equipment prior to color correction processing. In present day equipment, the primary video signals are often provided in a format promulgated by the International Radio Consultant Committee (CCIR), Recommendation No 601-1. The CCIR in 1986 defined a standard set of digitized color signals for television studios. CCIR Recommendation 601-1 (1986) is hereby incorporated by reference.
The standard signals defined in Recommendation 601-1 essentially consist of a luminance signal Y and two color difference signals (R-Y) and (B-Y). It is well known that since the luminance signal contains information on levels of red, green, and blue, the three standard signals can be used to unambiguously reproduce the RGB levels for any given set of samples.
It is well known that certain aspects of the RGB signals from image source equipment are nonlinear with respect to color imagery and that it is advantageous to adjust these aspects prior to processing with color correction equipment. For example, it is well known that the gain, gamma, and lift parameters of the signal from various types of image sources often need alignment or adjustment prior to processing, because of the nonlinearity of these sources. These parameters of gain, gamma, and lift are typically represented as a "gamma curve".
Basically, custom gamma is a numerical factor used for indicating how light values are expanded or compressed. Typically, the relationship between the input and output of a typical video channel is graphically represented as a nonlinear relationship or curve by depicting the output on the y-axis relative to the input on the x-axis. The numerical value of gamma is proportional to the deviation from a straight line to the curve. A curve with positive gamma value is bowed upward, with the greatest slope at the start and a relative flat part at the end. A curve with negative gamma value is bowed downward, making the start of the curve comparatively flat while the steeper slope is at the end. A gamma of zero results in a straight line, with a constant slope.
The gain parameter on a gamma curve represents numerical multiplicative factor at the highest output level relative to the highest input level. For example, if an input signal reaches a peak level of 1, and the output signal is at 1.5, the gain is therefore 1.5.
The black level or lift parameter of a gamma curve is a function of the output signal for the lowest value of input signal. If the input signal is or is supposed to be 0, which represents a black region of an image, but the image source equipment provides a positive output value for the zero input signal, the signal is said to experience a "lift" or an increased black level. This is also the point at which the gamma curve intersects the y-axis. Often, the lift must be adjusted in each of the RGB channels so as to provide a uniform black.
It is known in the art to provide customized gamma curve equipment at the input stage of color correction equipment so as to provide for gain, gamma, and black level adjustment for signals from various image sources. The Renaissance 8:8:8.TM. color correction equipment is a computer-controlled color correction system manufactured by the assignee of the present invention. This system allows an operator to define gamma curves for each of the RGB and luminance channels in a customized manner. The "Custom Curve" feature of the Renaissance 8:8:8.TM. equipment allows the operator to adjust the shape of gamma curve by software manipulation, via a graphical user interface. These curves can be altered beyond the standard amount of "stretch" or "crush". Without affecting the value of middle grays in an image, the Custom Curves feature adds extra density to the darker shadows while allowing compression of the tonality range of highlights. This enhances middle contrast and simultaneously avoids clipping, and produces richer, vibrant colors.
The known Custom Curves feature also allows an operator to select a point along a custom gamma curve and independently pull on each color channel's primary balance without regard to what might be occurring at any other level of color enhancement. This allows creation of a totally unique gray scale response for each color channel.
With the Custom Curves feature, an almost unlimited variety of primary color effects are possible. The Renaissance 8:8:8.TM. equipment allows an operator to switch, dissolve, or window between various effects on a scene by scene basis. The Custom Curves can be defined differently for each color correction session and then stored independently and automatically.
To allow user access to the Custom Curves feature, operator controls are provided on the Renaissance 8:8:8.TM. control panel. A number of "soft keys" (actuatable buttons on a display screen associated with the computer-controlled equipment) allow selection of a particular custom gamma curve for channels, for example of luminance, red, green, and blue. A Custom Curves features window appears on the operator's workstation window. The operator can visually inspect the shape of the gamma curve for the luminance, red, blue, and green channels. The custom gamma curves in this prior system can also be selected by clicking directly on a curve using a pointer and mouse. To create or adjust a custom gamma curve, the operator places the cursor on an appropriate curve, holds down the left mouse button, and drags the curve to a new shape. The operator can also place the cursor at the point in the display window for the curve and click; the curve will snap to that location. A colored defined "control point" dot appears as the user interface feedback at the new position on the curve. In this prior system, up to four deemed control points can appear on each curve.
Similarly, to delete a defined control point on a custom gamma curve, the operator places the cursor on or near the point and double-clicks the left mouse button. Double-clicking the left mouse button while the cursor is on a custom gamma curve sets the curve to unity, which as described above is a straight line. At unity, of course the gamma control has no effect.
The setting of each custom gamma curve in this prior equipment can be saved to five user memories per color channel. The operator can assign a name or a comment to the curve by clicking in a comment area and typing in an appropriate text message. A sixth soft key button recalls a default curve, which is not adjustable. Thus, a set of five user memories are provided per color channel, storable in a configuration file.
In the prior Renaissance 8:8:8.TM. Custom Curves equipment, the process of defining the curve is computationally and memory intensive. A large lookup table comprising a 16K.times.16 is provided for storing all possible values of the custom gamma curve for all possible values of a 14-bit input signal, which allows storage of a discrete value for the custom gamma curve for each of R, G, B, and luminance.
A significant problem with this approach is that the entire 16K.times.16 array must be computed and loaded for each different custom curve for each channel; changing a custom curve to implement an effect between one frame and the next entails loading all values of the entire array in a very short time. It has proven impractical to recompute and refill a 16K.times.16 bit array on a per-frame basis, thereby effectively limiting the effects that can be implemented.
Moreover, for instantaneous small values of gamma (i.e. steep slopes), there can be discontinuities between bitwise adjacent values of the input signal, notwithstanding the 14-bit resolution. This is because of the basic piece-wise linear approach of storing discrete values. Such discontinuities can result in noticeable artifacts in the output signals.
Accordingly, there is still need for improvement in the custom gamma curve type feature in the primary channel processing for color correction equipment that provides superior performance for real time image processing. There is also a need for an improved custom gamma curve generator that generates a smooth curve through a fixed number of arbitrarily defined control points.